home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
latex209
/
contrib
/
letters
/
stbrief
/
stbrief.sty
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1992-02-25
|
14KB
|
420 lines
% DOCUMENT OPTION STYLE -- Released 21-MAR-1991
% adapted from LETTER DOCUMENT STYLE by Leslie Lamport
% This style has to be used as an optional style.
% Tests have been made with the article.sty as the basis sty.
% This style was also used together with the finder.sty.
% Advice: Use the STBrief.Sty in connection with the DefUser.Sty.
% (Of course ist works without it)
% Copyright (c) 1991,1991 by Steffen Steinhaeuser
% Permission to copy all or part of this work is granted, provided
% that the copies are not made or distributed for resale, and that
% the copyright notice and this notice are retained.
% THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO
% WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
% INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
% FOR ANY PARTICULAR PURPOSE.
% If you make any improvements, I'd like to hear about them.
% Steffen Steinh\"auser
% Landwehrstr. 47
% 6100 Darmstadt
% Federal Republic of Germany
% steinhaeuser@ddagsi5.bitnet
% steffen_steinhaeuser@mz.maus.de
\def~{ }
\typeout{-------------------------------------------------------}
\typeout{| STBRIEF.STY V1.4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|}
\typeout{| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c'15-Feb-91 R.Th/Stone |}
\typeout{-------------------------------------------------------}
\typeout{}
% Die Liste der folgenden Makros sollte mit den benutzerspezifischen
% Daten in eine Datei als Optionstyle in \documentstyle[]{} angegeben
% werden. Diese Arbeit sollte aber, falls vorhanden, der DefUser.Sty
% uebernehmen.
% Folgenden Makros sollten die eigenen Einstellungen uebergeben werden:
% \name{}
% \strasse{}
% \stadt{}
% \signature{}
% \telefon{}
% \faxnummer{}
% \kontonr{}
% \bank{}
% \bankleitzahl{}
% \smallogo{}
% \logo{}
% \logosymbol{}
% \datum{}
% Folgende Makros sollten ggf. nur angegeben werden (oder nicht)
% \fax
% Folgende Flags bzgl. eigener Einstellung setzen
% \toplogo[true] oder \toplogofalse
% \toprule[true] oder \toprulefalse
% \bottomrule[true] oder \bottomrulefalse
% \bankvtrue oder \bankv[false]
% \from[true] oder \fromfalse
% \symlogotrue oder \symlogo[false]
% [...] ist die Defaulteinstellung im STBrief.sty
% Ende der Liste
% Font fuer das Logo im Briefkopf
\newfont{\toplogofnt}{cmtt10 scaled 2074}
% Skip zwischen zwei Absaetzen ist so gross wie etwa eine Leerzeile
% Begin des Absatzes ist nicht eingerueckt
\parskip1.5ex plus.5ex minus.5ex
\parindent0pt
% ****************************************
% * laengen - definitionen *
% ****************************************
% This is from documentsubstyle DINA4 for DIN A4 pagesize. GMD Z1.BN 12.06.85
\oddsidemargin 0pt
\evensidemargin 0pt
\marginparwidth 0pt
\marginparsep 0pt
\marginparpush 0pt
\topmargin -1.2cm
\headheight 2.5cm
\headsep 1cm
\footheight 0.7cm
\footskip 1cm
\textheight 17cm
\textwidth 16.2cm
% individuelle Einstellung je nach Computertyp und Druckertreiber
\voffset-8mm
%\hoffset
% ****************************************
% * logische flags - definitionen *
% ****************************************
% Steuerung von etwaigen Ausgaben (oder nicht) durch neue IF-Kommandos
\newif\iftoplogo % Ausgabe des toplogos
\newif\iftoprule % Linie oben (unter dem TopLogo)
\newif\ifbottomrule % Linie unten (ueber der Bankverbindung)
\newif\ifsmallfrom % Absender ueber der Adresse
\newif\iffrom % from (-address) kann angeschaltet werden
\newif\ifbankv % Ausgabe der Bankverbindung in der Fu_zeile
\newif\ifsymlogo % Ausgabe eines Logosymbols
\newif\ifdefuser
% Defaulteinstellungen
\fromtrue
\smallfromtrue
\bankvfalse
\toplogotrue
\symlogofalse
\topruletrue
\bottomruletrue
% ****************************************
% * textmakro - definitionen *
% ****************************************
\def\fax{ %
\smallfromfalse
\toprulefalse
\bottomrulefalse}
\def\kontonr#1{\def\kontono{#1}}
\def\kontono{}
\def\bank#1{\def\bankname{#1}}
\def\bankname{}
\def\bankleitzahl#1{\def\bankzahl{#1}}
\def\bankzahl{}
\def\name#1{\def\fromname{#1}\def\fromsig{#1}}
\def\fromname{}
\def\strasse#1{\def\fromstreet{#1}}
\def\fromstreet{}
\def\stadt#1{\def\fromcity{#1}}
\def\fromcity{}
\def\signature#1{\def\fromsig{#1}}
\def\fromsig{}
\def\faxnummer#1{\def\faxnum{#1}}
\def\faxnum{}
\newlength{\telenumwidth}
\newlength{\telewidth}
\settowidth{\telewidth}{Telefon}
\def\telefon#1{\def\telephonenum{#1}\settowidth{\telenumwidth}{#1}}
\def\telephonenum{}
\def\smallogo#1{\def\sfromlogo{#1}}
\def\sfromlogo{}
\def\logo#1{\def\fromlogo{#1}\def\sfromlogo{#1}}
\def\fromlogo{}
\def\logosymbol#1{\def\symlogo{#1} %
\iftoplogo\else\def\fromlogo{#1}\fi %
\ifx\@empty\symlogo\symlogofalse\else\symlogotrue\fi}
\def\datum#1{\def\date{#1}}
\def\date{\today}
% ****************************************
% * stbrief environment - definitionen *
% ****************************************
\def\opening#1{
\thispagestyle{firstpage}
{\hbox{} \par}
\vspace*{5mm} % \vfill
\par #1\par\nobreak
\long\def\closing#1{\par\nobreak\vspace{\parskip}
\stopbreaks
\noindent
\parbox{0.5\textwidth}{\raggedright
\ignorespaces #1\\[12mm]
\ifx\@empty\fromsig\else
\fromsig \fi\strut}\vfill
\par}
\def\cc#1{\par\noindent
\parbox[t]{\textwidth}{\@hangfrom{\rm \ccname }\ignorespaces #1\strut}\par}
\def\encl#1{\par\noindent
\parbox[t]{\textwidth}{\@hangfrom{\rm \enclname }\ignorespaces #1\strut}\par}
\def\stopletter{}
% Labels
\def\returnaddress{}
\newcount\labelcount
% The following \startlabels command sets things up for producing
% labels in two columns of five 2" X 4-1/4" labels each, suitable
% for reproducing onto Avery brand number 5352 address labels.
\def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt
\pagestyle{empty}
\let\@texttop=\relax
\topmargin -50pt
\headsep 0pt
\oddsidemargin -35pt
\evensidemargin -35pt
\textheight 10in
\@colht\textheight \@colroom\textheight \vsize\textheight
\textwidth 550pt
\columnsep 25pt
\baselineskip=0pt
\lineskip=0pt
\boxmaxdepth=0pt
\twocolumn\relax}
\def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}}
\vbox to 2in{\vss \box0 \vss}}
% ****************************************
% * THE GENERIC STBRIEF COMMANDS *
% ****************************************
\long\def\letter#1{\newpage
\c@page\@ne
\interlinepenalty=200 % smaller than the TeXbook value
\@processto{#1}}
\def\endletter{\stopletter\@@par\pagebreak \@@par
\if@filesw
\begingroup
\def\protect{\string}
\let\\=\relax
\def\protect##1{\string##1\space}
\immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname
\\\toaddress}}
\endgroup
\fi}
\long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
\else \@yproc #1@@@\fi}
\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
\def\stopbreaks{\interlinepenalty \@M
\def\par{\@@par\nobreak}\let\\=\@nobreakcr
\let\vspace\@nobreakvspace}
\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
\@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
\def\startbreaks{\let\\=\@normalcr
\interlinepenalty 200\def\par{\@@par\penalty 200}}
\def\document{\endgroup
\@colht\textheight \@colroom\textheight \vsize\textheight
\columnwidth\textwidth \@clubpenalty\clubpenalty
\if@twocolumn \advance\columnwidth -\columnsep
\divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
\fi
\hsize\columnwidth \linewidth\hsize
\begingroup\@floatplacement\@dblfloatplacement\endgroup
\if@filesw \immediate\openout\@mainaux=\jobname.aux
\immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi
\def\do##1{\let ##1\@notprerr}
\@preamblecmds
\let\do\noexpand
\@normalsize\everypar{}
% Sollten noch keine benutzerspezifischen Daten definiert sein,
% gibt es jetzt die Moegloichkeit dazu
\ifdefuser\else\defuser\fi
\def\enddocument{\@checkend{document}\newpage\begingroup
\if@filesw \immediate\closeout\@mainaux
\makeatletter\input \jobname.aux\clearpage
\fi\endgroup\deadcycles\z@\@@end}
\def\makelabels{\@fileswtrue}
\def\@startlabels{}
% ****************************************
% * PAGE STYLES *
% ****************************************
\gdef\@knickpoint{%
\vbox to0pt{%
\vskip1.8cm%
\noindent\hbox to0pt{\hskip-1.8cm \null\vrule height.3pt width.5cm \hss}%
\vss}%
\def\ps@firstpage{ %
\headheight 7.5cm
\def\@smallfrom{%
\hbox{%
\ifx\@empty\sfromlogo %
\tiny \fromname\ $\cdot$ \fromstreet\ $\cdot$ \fromcity %
\else %
\tiny \sfromlogo\ $\cdot$ \fromstreet\ $\cdot$ \fromcity %
\fi
}
\def\@from{%
\parbox[t]{0.33\textwidth}{\raggedright
\vspace{8mm} %
\iffrom %
\scriptsize %
\fromname \\ %
\fromstreet \\ %
\fromcity \\ %
\parbox[t]{\telewidth}{Telefon} %
\parbox[t]{\telenumwidth}{\telephonenum} \\
\ifx\@empty\faxnum \else%
\parbox[t]{\telewidth}{Telefax} %
\parbox[t]{\telenumwidth}{\faxnum} \\ \fi%
\normalsize %
\else %
\par \vspace{5mm} \par %
\fi
\vspace{12mm}
\date}}
\gdef\@firsthed{
\vbox {
\iftoplogo%
\ifx\@empty\fromlogo%
\parbox{\textwidth}{\Huge \fromname}%
\else %
\ifsymlogo%
\parbox{\textwidth}{\symlogo}%
\else %
{\toplogofnt \fromlogo}%
\fi%
\fi%
\fi%
\vskip 3mm
\iftoprule %
\rule[0pt]{\textwidth}{1pt} %
\fi%
}
\def\@firsthef{ %
\hbox to0pt{\@knickpoint\hss}%
\vbox to \headheight{ %
\@firsthed
\vspace*{21mm}\par
\vbox{
\parbox[t]{.6\textwidth}{
\vspace{8mm}
\ifsmallfrom %
\raggedright \@smallfrom %
\vskip 1mm %
\hrule %
\fi
\vskip 5mm
\hspace*{.05\textwidth}
\parbox[t]{.5\textwidth}{
\ifx\toname\@empty
\ifx\toaddress\@empty
\vbox{.} \vspace{3cm} \vbox{.}
\fi
\else
\toname \\ \toaddress
\fi
}
}
\hfil
\@from
}
\vspace*{10mm} % \vfill
}
\def\@oddhead{%
\kern-9pt %
\@firsthef
\def\@oddfoot{%
\kern-3pt \vbox{
\ifbottomrule %
\rule[0pt]{\textwidth}{1pt} %
\ifbankv %
\scriptsize Bankverbindung:
\bankname\ $\cdot$ BLZ.\bankzahl\ $\cdot$ Kto.\kontono %
\hfill %
\fi %
\fi
}
\def\@evenfoot{
\iftoprule %
\vbox{\rule[0pt]{\textwidth}{1pt} } %
\fi
\global\textheight 21.7cm
\global\@colht\textheight
\global\@colroom\textheight
\global\vsize\textheight
\def\ps@plain{ %
\def\@plainhef{ %
\vbox to \headheight {
\@firsthed \vskip 10mm
\vbox{\rm \hfil Seite \thepage }
\vfill}
\def\@oddhead{
\kern-9pt %
\@plainhef
\def\@oddfoot{
\vbox{
\ifbottomrule\rule[0pt]{\textwidth}{1pt}\fi}
\let\@evenhead\@oddhead
\def\@evenfoot{
\vbox{
\iftoprule\rule[0pt]{\textwidth}{1pt}\fi
\let\anlage\encl
\let\kopie\cc
% stbrief default preparation
\ps@plain % 'plain' page style
\pagenumbering{arabic} % Arabic page numbers
\onecolumn % Single-column
\@fileswfalse % Inhibits writing of .AUX file.
% ****************************************
% * DEFINE USER *
% ****************************************
\gdef\defuser{ %
\openin1 defuser.sty
\ifeof1
\closein1\relax
\typeout{}
\typeout{TeX kann den DefUser.Sty nicht finden. Sie muessen die von Hand}
\typeout{erstellte Datei mit den benutzerspezifischen Daten in die Liste}
\typeout{der Optionen im \string\documentstyle~ eintragen. Sie sollten versuchen}
\typeout{sich den DefUser.Sty zu besorgen, da er ihnen viel Arbeit erspart}
\typeout{und immer ueber den neusten Stand des STBrief.Sty informiert ist.}
\typeout{}
\typeout{Da Ihr Brief ohne die benutzerspezifischen Daten nicht auskommt,}
\typeout{wird an dieser Stelle der TeXlauf abgebrochen.}
\typeout{}
\typein[\return]{Druecken Sie <RETURN> !}
\end{document}
\else
\closein1\relax
\def\ja{j}
\def\Ja{J}
\typeout{}
\typeout{Achtung:}
\typeout{}
\typeout{Wie sie wissen, benoetigt man fuer den STBrief.Sty eine Datei mit}
\typeout{benutzerspezifischen Daten. Hier gibt es nun die Moeglichkeit}
\typeout{diese Datei interaktiv anzulegen und gleich zu verwenden. Sollten}
\typeout{jedoch eine solche Datei schon existieren, so geben sie einfach}
\typeout{deren Namen ein.}
\typeout{}
\typein[\filename]{Bitte den Namen des DefUser-Files eingeben (ohne Extension):}
\typeout{}
\typeout{Merken Sie sich den Dateinamen \filename[.sty], damit Sie ihn}
\typeout{demnaechst im \string\documentstyle~ als Option angeben koennen.}
\openin2\filename.sty
\ifeof2
\closein2\relax
\typeout{}
\typeout{Keine Datei namens \filename.sty~ gefunden.}
\typeout{Der DefUser.Sty wird Ihnen helfen eine zu erstellen.}
\input{defuser.sty}
\else
\closein2\relax
\typeout{}
\typein[\antwort]{Soll die Datei \filename.sty~ geaendert werden (J/N)? [N]}
\if\antwort\ja\let\antwort\Ja\fi
\if\antwort\Ja
\input{defuser.sty}
\else
\input{\filename.sty}
\fi